# Maintainer: Simon Zeni <simon@bl4ckb0ne.ca>
pkgname=jellyfin
pkgver=10.8.13
pkgrel=0
pkgdesc="The Free Software Media System"
pkgusers="$pkgname"
pkggroups="$pkgname"
install="$pkgname.pre-install"
url="https://jellyfin.org/"
arch="x86_64 armv7 aarch64"
license="GPL-2.0-only"
makedepends="dotnet6-sdk"
depends="aspnetcore6-runtime ffmpeg"
subpackages="$pkgname-openrc"
source="$pkgname-$pkgver.tar.gz::https://github.com/jellyfin/jellyfin/archive/refs/tags/v$pkgver.tar.gz
	$pkgname.initd
	$pkgname.confd"

case $CARCH in
	x86_64) _dotnet_arch=x64;;
	aarch64) _dotnet_arch=arm64;;
	armv7|armhf) _dotnet_arch=arm;;
esac

# parses RID from /etc/os-release depending on if edge or production release
# to set _runtime_id
# shellcheck disable=SC2034
. /etc/os-release
[ -n "${VERSION_ID//[^_]}" ] && _runtime_id="alpine.${VERSION_ID%_*}-$_dotnet_arch" || _runtime_id="alpine.${VERSION_ID%.*}-$_dotnet_arch"

build() {
	dotnet build --configuration Release Jellyfin.Server --no-self-contained --runtime $_runtime_id
	dotnet publish --configuration Release Jellyfin.Server --no-self-contained --output publish --runtime $_runtime_id
}

check() {
	# check on aarch64 is broken for dotnet6-sdk v6.0.1xx due to
	# https://github.com/microsoft/vstest/issues/2566
	if [ "$CARCH" = "aarch64" ]; then
		return
	fi

	dotnet test --runtime $_runtime_id
}

package() {
	mkdir -p "$pkgdir"/usr/lib
	cp -dr publish "$pkgdir"/usr/lib/jellyfin

	mkdir -p "$pkgdir"/usr/bin
	ln -s /usr/lib/jellyfin/jellyfin "$pkgdir"/usr/bin/jellyfin

	install -Dm755 "$srcdir"/$pkgname.initd \
		"$pkgdir"/etc/init.d/$pkgname
	install -Dm644 "$srcdir"/$pkgname.confd \
		"$pkgdir"/etc/conf.d/$pkgname
}

sha512sums="
aeba7144c3dfbbc9285cc02e8cac223f10f44f5ed8c7b0bdd94bd869e182981d78b0e2d67d33f2db9dae5cbc3a9bed29408860844744c8e2691845c0095cb0ca  jellyfin-10.8.13.tar.gz
364a70a953d921048a249fd370642c1782e434c850334cd55e35bbb10d1bb93482d37faa1c11da5d7acba96a084d9832e5db212b65b0fa9907c7d3afe553aaf9  jellyfin.initd
d35eb07d11d711b8ad35c7726e151a8096609712fee3bfea00c9adeff8e56660e3cde3d9b0b2dc8a847514af4d2b32340e2b29b77facfab4f8921ba15ba671b0  jellyfin.confd
"
